3ed14370984c7a3fd027c1a2c27b1795acb1939a,plugins-management/src/com/intellij/openapi/updateSettings/impl/PluginDownloader.java,PluginDownloader,prepareToInstall,#ProgressIndicator#,68

Before Change


    File oldFile = null;
    if (PluginManager.isPluginInstalled(PluginId.getId(myPluginId))) {
      //store old plugins file
      final IdeaPluginDescriptor ideaPluginDescriptor = PluginManager.getPlugin(PluginId.getId(myPluginId));
      LOG.assertTrue(ideaPluginDescriptor != null);
      if (myPluginVersion != null && IdeaPluginDescriptorImpl.compareVersion(ideaPluginDescriptor.getVersion(), myPluginVersion) >= 0) return false;
      oldFile = ideaPluginDescriptor.getPath();

After Change


    IdeaPluginDescriptor ideaPluginDescriptor = null;
    if (PluginManager.isPluginInstalled(PluginId.getId(myPluginId))) {
      //store old plugins file
      ideaPluginDescriptor = PluginManager.getPlugin(PluginId.getId(myPluginId));
      LOG.assertTrue(ideaPluginDescriptor != null);
      if (myPluginVersion != null && IdeaPluginDescriptorImpl.compareVersion(ideaPluginDescriptor.getVersion(), myPluginVersion) >= 0) return false;
      oldFile = ideaPluginDescriptor.getPath();
    }
    // download plugin
    File file;
    String errorMessage = IdeBundle.message("unknown.error");
    try {
      file = downloadPlugin(pi);
    }
    catch (IOException ex) {
      file = null;
      errorMessage = ex.getMessage();
    }
    if (file == null) {
      final String errorMessage1 = errorMessage;
      ApplicationManager.getApplication().invokeLater(new Runnable() {
        public void run() {
          Messages.showErrorDialog(IdeBundle.message("error.plugin.was.not.installed", getPluginName(), errorMessage1),
                                   IdeBundle.message("title.failed.to.download"));
        }
      });
      return false;
    }

    if (ideaPluginDescriptor != null) {
      final IdeaPluginDescriptorImpl descriptor = PluginManager.loadDescriptorFromJar(file);
      if (descriptor == null) return false;
      if (IdeaPluginDescriptorImpl.compareVersion(ideaPluginDescriptor.getVersion(), descriptor.getVersion()) >= 0) return false; //was not updated
      if (oldFile != null) {
        // add command to delete the 'action script' file
        StartupActionScriptManager.ActionCommand deleteOld = new StartupActionScriptManager.DeleteCommand(oldFile);